- Assertions

Pre-condition: condition that should hold before calling a method
Post-condition: condition that should be satisfied after calling a mehtod

Example#1: Assertion Demo

- Exceptions: case studies
1. Copy a text file
2. Copy an image
3. Dealing with a JSON file served by an endpoint

- Copy a text file: 
Streams: Collection of bytes/characters flowing out/into your process

Input stream: attached to a source of input (file, network connection, etc...)
Output streams: linked with a sink (file, connection, etc...)

2 types of streams: 
1) Character-based streams ; 
(Writer, Reader as suffixes for the name of the class)
2) Byte-based streams
(Stream suffix)

Example#2: Copy Text File ---> We got the data from lipsum.com

- Copy an Image file: 

Byte-based streams: FileInputStream, FileOutputStream

- Dealing with network files:

An app is organized into 3 layers: 1) UI (JavaFx) ; 2) Data layer (Python); 
3) Business logic (Backend) - Java

Client side <----HTTP---> Server

CRUD (Create, Read, Update, Delete)

JSON (JavaScript Object Notation)




























